String clazzTpl({package}) => """
import 'package:$package/store/app_config/app_config_state.dart';
import 'package:$package/store/theme/theme_state.dart';

class ReduxState {
  final AppConfigState? appConfigState;
  final ThemeState? themeState;

  ReduxState({
    this.appConfigState,
    this.themeState,
  });

  ReduxState copyWith({
    appConfigState,
    themeState,
  }) {
    return ReduxState(
      appConfigState: appConfigState ?? this.appConfigState,
      themeState: themeState ?? this.themeState,
    );
  }

  static ReduxState fromJson(dynamic json) {
    if (json == null) return ReduxState.initialState();
    return ReduxState(
      appConfigState: AppConfigState.fromJson(json['appConfigState']),
      themeState: ThemeState.fromJson(json['themeState']),
    );
  }

  dynamic toJson() => {
        'appConfigState': appConfigState?.toJson(),
        'themeState': themeState?.toJson(),
      };

  static ReduxState initialState() {
    return ReduxState(
      appConfigState: AppConfigState.initialState(),
      themeState: ThemeState(ThemeType.system),
    );
  }
}
""";
